package cn.ibdsr.human.db.mapper;

import cn.ibdsr.human.db.model.Job;
import cn.ibdsr.human.transfer.job.CompanyJobDTO;
import cn.ibdsr.human.transfer.job.JobResponseDTO;
import cn.ibdsr.human.transfer.job.JobUserDTO;
import cn.ibdsr.human.transfer.platform.LatestJobItem;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 岗位信息表 Mapper 接口
 * </p>
 *
 * @author cdl
 * @since 2021-08-03
 */
public interface JobMapper extends BaseMapper<Job> {
    /**
     * 企业分页查询工作
     * @param page
     * @param companyId
     * @param name
     * @param isPublish
     * @return
     */
    List<JobResponseDTO> listByPage(@Param("page")  Page<JobResponseDTO> page,
                                    @Param("gender") Integer gender,
                                    @Param("companyId") Long companyId
            ,@Param("name") String name, @Param("isPublish") Boolean isPublish);

    /**
     * 用户查询工作列表
     * @param page
     * @return
     */
    List<CompanyJobDTO> listUserJobByPage(@Param("page")  Page<CompanyJobDTO> page);

    /**
     * 平台分页查询工作
     * @param page
     * @param code
     * @param name
     * @param isPublish
     * @return
     */
    List<JobUserDTO> getPlatformJobList(@Param("page") Page<JobUserDTO> page,
                                        @Param("code")  String code,
                                        @Param("name")  String name,
                                        @Param("isPublish")  Boolean isPublish);

    Long selectMaxSortRank();

    /**
     * 获取最新的岗位数据
     * @return
     */
    List<LatestJobItem> getLatestJobList();
}
